{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<a href=\"https://colab.research.google.com/github/timeseriesAI/tsai/blob/master/tutorial_nbs/10_Time_Series_Classification_and_Regression_with_MiniRocket.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "created by Malcolm McLean and Ignacio Oguiza (timeseriesAI@gmail.com) based on: \n",
    "\n",
    "* Dempster, A., Schmidt, D. F., & Webb, G. I. (2020). MINIROCKET: A Very Fast (Almost) Deterministic Transform for Time Series Classification. arXiv preprint arXiv:2012.08791.\n",
    "\n",
    "* Original paper: https://arxiv.org/abs/2012.08791\n",
    "\n",
    "* Original code:  https://github.com/angus924/minirocket"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# MiniRocket 🚀\n",
    "\n",
    "> A Very Fast (Almost) Deterministic Transform for Time Series Classification."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "ROCKET is a type of time series classification and regression methods that is different to the \n",
    "ones you may be familiar with. Typical machine learning classifiers will \n",
    "optimize the weights of convolutions, fully-connected, and pooling layers, \n",
    "learning a configuration of weights that classifies the time series.\n",
    "\n",
    "In contrast, ROCKET applies a large number of fixed, non-trainable, independent convolutions \n",
    "to the timeseries. It then extracts a number of features from each convolution \n",
    "output (a form of pooling), generating typically 10000 features per sample. (These \n",
    "features are simply floating point numbers.)\n",
    "\n",
    "The features are stored so that they can be used multiple times. \n",
    "It then learns a simple linear head to predict each time series sample from its features. \n",
    "Typical PyTorch heads might be based on Linear layers. When the number of training samples is small,\n",
    "sklearn's RidgeClassifier is often used.\n",
    "\n",
    "The convolutions' fixed weights and the pooling method have been chosen experimentally to \n",
    "effectively predict a broad range of real-world time series.\n",
    "\n",
    "The original ROCKET method used a selection of fixed convolutions with weights \n",
    "chosen according to a random distribution. Building upon the lessons learned \n",
    "from ROCKET, MiniRocket refines the convolutions to a specific pre-defined set \n",
    "that proved to be at least as effective ROCKET's. It is also much faster \n",
    "to calculate than the original ROCKET. Actually, the paper authors \"suggest that MiniRocket should now be considered and used as the default variant of Rocket.\"\n",
    "\n",
    "MiniROCKET was implemented in Python using numba acceleration and mathematical \n",
    "speedups specific to the algorithm. It runs quite fast, utilizing CPU cores in \n",
    "parallel. Here we present a 2 implementations of MiniRocket: \n",
    " * a cpu version with an sklearn-like API (that can be used with small datasets - <10k samples), and\n",
    " * a PyTorch implementation of MiniRocket, optimized for \n",
    "the GPU. It runs faster (3-25x depending on your GPU) than the CPU version and offers some flexibility for further experimentation.\n",
    "\n",
    "We'll demonstrate how you can use both of them througout this notebook."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Import libraries 📚"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# # **************** UNCOMMENT AND RUN THIS CELL IF YOU NEED TO INSTALL/ UPGRADE TSAI ****************\n",
    "# stable = False # Set to True for latest pip version or False for main branch in GitHub\n",
    "# !pip install {\"tsai -U\" if stable else \"git+https://github.com/timeseriesAI/tsai.git\"} >> /dev/null\n",
    "# # ⚠️ REMEMBER TO RESTART (NOT RECONNECT/ RESET) THE KERNEL/ RUNTIME ONCE THE INSTALLATION IS FINISHED"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Restart your runtime before running the cells below."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "os             : Linux-5.4.104+-x86_64-with-Ubuntu-18.04-bionic\n",
      "python         : 3.7.12\n",
      "tsai           : 0.2.23\n",
      "fastai         : 2.5.3\n",
      "fastcore       : 1.3.27\n",
      "torch          : 1.9.1+cu102\n",
      "n_cpus         : 2\n",
      "device         : cuda (Tesla P100-PCIE-16GB)\n"
     ]
    }
   ],
   "source": [
    "from tsai.all import *\n",
    "my_setup()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Using MiniRocket 🚀"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* First, create the features for each timeseries sample using the MiniRocketFeatures module (MRF). \n",
    "MRF takes a minibatch of time series samples and outputs their features. Choosing an appropriate minibatch size\n",
    "allows training sets of any size to be used without exhausting CPU or GPU memory.\n",
    "\n",
    "    Typically, 10000 features will characterize each sample. These features are relatively\n",
    "expensive to create, but once created they are fixed and may be used as the \n",
    "input for further training. They might be saved for example in memory or on disk.\n",
    "\n",
    "\n",
    "* Next, the features are sent to a linear model. The original \n",
    "MiniRocket research used sklearn's RidgeClassifier. When the number of samples \n",
    "goes beyond the capacity of RidgeClassifier, a deep learning \"Head\" can be \n",
    "used instead to learn the classification/regression from minibatches of features.\n",
    "\n",
    "For the following demos, we use the tsai package to handle timeseries efficiently and clearly. tsai is fully integrated with fastai, allowing fastai's training loop and other convenience to be used. To learn more about tsai, please check out the docs and tutorials at https://github.com/timeseriesAI/tsai\n",
    "\n",
    "Let's get started."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## sklearn-type API (<10k samples) 🚶🏻‍♂️"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "valid accuracy    : 93.333% time: 0:00:00.416003\n"
     ]
    }
   ],
   "source": [
    "# Univariate classification with sklearn-type API\n",
    "dsid = 'OliveOil'\n",
    "X_train, y_train, X_valid, y_valid = get_UCR_data(dsid)   # Download the UCR dataset\n",
    "\n",
    "# Computes MiniRocket features using the original (non-PyTorch) MiniRocket code.\n",
    "# It then sends them to a sklearn's RidgeClassifier (linear classifier).\n",
    "model = MiniRocketClassifier()\n",
    "timer.start(False)\n",
    "model.fit(X_train, y_train)\n",
    "t = timer.stop()\n",
    "print(f'valid accuracy    : {model.score(X_valid, y_valid):.3%} time: {t}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "valid accuracy    : 65.328% time: 0:00:07.913967\n"
     ]
    }
   ],
   "source": [
    "# Multivariate classification with sklearn-type API\n",
    "dsid = 'LSST'\n",
    "X_train, y_train, X_valid, y_valid = get_UCR_data(dsid)\n",
    "model = MiniRocketClassifier()\n",
    "timer.start(False)\n",
    "model.fit(X_train, y_train)\n",
    "t = timer.stop()\n",
    "print(f'valid accuracy    : {model.score(X_valid, y_valid):.3%} time: {t}')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "One way to try to improve performance is to use an ensemble (that uses majority vote). Bear in mind that the ensemble will take longer since multiple models will be fitted."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "valid accuracy    : 66.991% time: 0:00:37.710987\n"
     ]
    }
   ],
   "source": [
    "# Multivariate classification ensemble with sklearn-type API\n",
    "dsid = 'LSST'\n",
    "X_train, y_train, X_valid, y_valid = get_UCR_data(dsid)\n",
    "model = MiniRocketVotingClassifier(n_estimators=5)\n",
    "timer.start(False)\n",
    "model.fit(X_train, y_train)\n",
    "t = timer.stop()\n",
    "print(f'valid accuracy    : {model.score(X_valid, y_valid):.3%} time: {t}')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this case, we see an increase in accuracy although this may not be the case with other datasets."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Once a model is trained, you can always save it for future inference: "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "dsid = 'LSST'\n",
    "X_train, y_train, X_valid, y_valid = get_UCR_data(dsid)\n",
    "model = MiniRocketClassifier()\n",
    "model.fit(X_train, y_train)\n",
    "model.save(f'MiniRocket_{dsid}')\n",
    "del model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "valid accuracy    : 65.450%\n"
     ]
    }
   ],
   "source": [
    "model = load_minirocket(f'MiniRocket_{dsid}')\n",
    "print(f'valid accuracy    : {model.score(X_valid, y_valid):.3%}')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Regressor"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "153it [00:00, 6512.70it/s]\n",
      "74it [00:00, 6153.66it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "valid rmse        : 0.04161 time: 0:00:00.340052\n"
     ]
    }
   ],
   "source": [
    "# Univariate regression with sklearn-type API\n",
    "from sklearn.metrics import mean_squared_error\n",
    "dsid = 'Covid3Month'\n",
    "X_train, y_train, X_valid, y_valid = get_Monash_regression_data(dsid)\n",
    "rmse_scorer = make_scorer(mean_squared_error, greater_is_better=False)\n",
    "model = MiniRocketRegressor(scoring=rmse_scorer)\n",
    "timer.start(False)\n",
    "model.fit(X_train, y_train)\n",
    "t = timer.stop()\n",
    "y_pred = model.predict(X_valid)\n",
    "rmse = mean_squared_error(y_valid, y_pred, squared=False)\n",
    "print(f'valid rmse        : {rmse:.5f} time: {t}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "valid rmse        : 0.04161 time: 0:00:01.520089\n"
     ]
    }
   ],
   "source": [
    "# Univariate regression ensemble with sklearn-type API\n",
    "from sklearn.metrics import mean_squared_error\n",
    "dsid = 'Covid3Month'\n",
    "X_train, y_train, X_valid, y_valid = get_Monash_regression_data(dsid)\n",
    "rmse_scorer = make_scorer(mean_squared_error, greater_is_better=False)\n",
    "model = MiniRocketVotingRegressor(n_estimators=5, scoring=rmse_scorer)\n",
    "timer.start(False)\n",
    "model.fit(X_train, y_train)\n",
    "t = timer.stop()\n",
    "y_pred = model.predict(X_valid)\n",
    "rmse = mean_squared_error(y_valid, y_pred, squared=False)\n",
    "print(f'valid rmse        : {rmse:.5f} time: {t}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "119it [00:04, 26.64it/s]\n",
      "66it [00:01, 33.32it/s]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "valid rmse        : 2.11127 time: 0:00:00.593790\n"
     ]
    }
   ],
   "source": [
    "# Multivariate regression with sklearn-type API\n",
    "from sklearn.metrics import mean_squared_error\n",
    "dsid = 'AppliancesEnergy'\n",
    "X_train, y_train, X_valid, y_valid = get_Monash_regression_data(dsid)\n",
    "rmse_scorer = make_scorer(mean_squared_error, greater_is_better=False)\n",
    "model = MiniRocketRegressor(scoring=rmse_scorer)\n",
    "timer.start(False)\n",
    "model.fit(X_train, y_train)\n",
    "t = timer.stop()\n",
    "y_pred = model.predict(X_valid)\n",
    "rmse = mean_squared_error(y_valid, y_pred, squared=False)\n",
    "print(f'valid rmse        : {rmse:.5f} time: {t}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "valid rmse        : 2.17544 time: 0:00:02.473908\n"
     ]
    }
   ],
   "source": [
    "# Multivariate regression ensemble with sklearn-type API\n",
    "from sklearn.metrics import mean_squared_error\n",
    "dsid = 'AppliancesEnergy'\n",
    "X_train, y_train, X_valid, y_valid = get_Monash_regression_data(dsid)\n",
    "rmse_scorer = make_scorer(mean_squared_error, greater_is_better=False)\n",
    "model = MiniRocketVotingRegressor(n_estimators=5, scoring=rmse_scorer)\n",
    "timer.start(False)\n",
    "model.fit(X_train, y_train)\n",
    "t = timer.stop()\n",
    "y_pred = model.predict(X_valid)\n",
    "rmse = mean_squared_error(y_valid, y_pred, squared=False)\n",
    "print(f'valid rmse        : {rmse:.5f} time: {t}')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We'll also save this model for future inference:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Multivariate regression ensemble with sklearn-type API\n",
    "from sklearn.metrics import mean_squared_error\n",
    "dsid = 'AppliancesEnergy'\n",
    "X_train, y_train, X_valid, y_valid = get_Monash_regression_data(dsid)\n",
    "rmse_scorer = make_scorer(mean_squared_error, greater_is_better=False)\n",
    "model = MiniRocketVotingRegressor(n_estimators=5, scoring=rmse_scorer)\n",
    "model.fit(X_train, y_train)\n",
    "model.save(f'MRVRegressor_{dsid}')\n",
    "del model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "valid rmse        : 2.24495\n"
     ]
    }
   ],
   "source": [
    "model = load_minirocket(f'MRVRegressor_{dsid}')\n",
    "y_pred = model.predict(X_valid)\n",
    "rmse = mean_squared_error(y_valid, y_pred, squared=False)\n",
    "print(f'valid rmse        : {rmse:.5f}')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Pytorch implementation (any # samples) 🏃"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Offline feature calculation "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In the offline calculation, all features will be calculated in a first stage and then passed to the dataloader that will create batches. This features will ramain the same throughout training.\n",
    "\n",
    "⚠️ In order to avoid leakage when using the offline feature calculation, it's important to fit MiniRocketFeatures using just the train samples."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Create the MiniRocket features and store them in memory.\n",
    "dsid = 'LSST'\n",
    "X, y, splits = get_UCR_data(dsid, split_data=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((4925, 9996, 1), numpy.ndarray)"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mrf = MiniRocketFeatures(X.shape[1], X.shape[2]).to(default_device())\n",
    "X_train = X[splits[0]]\n",
    "mrf.fit(X_train)\n",
    "X_feat = get_minirocket_features(X, mrf, chunksize=1024, to_np=True)\n",
    "X_feat.shape, type(X_feat)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "👀 Note that X_train may be a np.ndarray or a torch.Tensor. In this case we'll pass a np.ndarray. \n",
    "\n",
    "If a torch.Tensor is passed, the model will move it to the right device (cuda) if necessary, so that it matches the model."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We'll save this model, as we'll need it to create features in the future."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "PATH = Path(\"./models/MRF.pt\")\n",
    "PATH.parent.mkdir(parents=True, exist_ok=True)\n",
    "torch.save(mrf.state_dict(), PATH)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As you can see the shape of the minirocket features is [sample_size x n_features x 1]. The last dimension (1) is added because `tsai` expects input data to have 3 dimensions, although in this case there's no longer a temporal dimension.\n",
    "\n",
    "Once the features are calculated, we'll need to train a Pytorch model. We'll use a simple linear model:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Sequential(\n",
       "  (0): Flatten(start_dim=1, end_dim=-1)\n",
       "  (1): BatchNorm1d(9996, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "  (2): Linear(in_features=9996, out_features=14, bias=True)\n",
       ")"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Using tsai/fastai, create DataLoaders for the features in X_feat.\n",
    "tfms = [None, TSClassification()]\n",
    "batch_tfms = TSStandardize(by_sample=True)\n",
    "dls = get_ts_dls(X_feat, y, splits=splits, tfms=tfms, batch_tfms=batch_tfms)\n",
    "                 \n",
    "# model is a linear classifier Head\n",
    "model = build_ts_model(MiniRocketHead, dls=dls)\n",
    "model.head"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "SuggestedLRs(valley=4.365158383734524e-05)"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Using tsai/fastai, create DataLoaders for the features in X_feat.\n",
    "tfms = [None, TSClassification()]\n",
    "batch_tfms = TSStandardize(by_sample=True)\n",
    "dls = get_ts_dls(X_feat, y, splits=splits, tfms=tfms, batch_tfms=batch_tfms)\n",
    "                 \n",
    "# model is a linear classifier Head\n",
    "model = build_ts_model(MiniRocketHead, dls=dls)\n",
    "                 \n",
    "# Drop into fastai and use it to find a good learning rate.\n",
    "learn = Learner(dls, model, metrics=accuracy, cbs=ShowGraph())\n",
    "learn.lr_find()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: left;\">\n",
       "      <th>epoch</th>\n",
       "      <th>train_loss</th>\n",
       "      <th>valid_loss</th>\n",
       "      <th>accuracy</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>2.178769</td>\n",
       "      <td>1.709955</td>\n",
       "      <td>0.485807</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>1.699641</td>\n",
       "      <td>1.360585</td>\n",
       "      <td>0.596918</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>1.377000</td>\n",
       "      <td>1.192236</td>\n",
       "      <td>0.626926</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>1.152699</td>\n",
       "      <td>1.140690</td>\n",
       "      <td>0.636659</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>0.990426</td>\n",
       "      <td>1.132041</td>\n",
       "      <td>0.649230</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>5</td>\n",
       "      <td>0.858792</td>\n",
       "      <td>1.119474</td>\n",
       "      <td>0.646796</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>6</td>\n",
       "      <td>0.768165</td>\n",
       "      <td>1.097129</td>\n",
       "      <td>0.661801</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>7</td>\n",
       "      <td>0.706659</td>\n",
       "      <td>1.071613</td>\n",
       "      <td>0.670722</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>8</td>\n",
       "      <td>0.653078</td>\n",
       "      <td>1.072817</td>\n",
       "      <td>0.667883</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>9</td>\n",
       "      <td>0.623413</td>\n",
       "      <td>1.072809</td>\n",
       "      <td>0.668289</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total time        : 0:00:06.369078\n"
     ]
    }
   ],
   "source": [
    "# As above, use tsai to bring X_feat into fastai, and train.\n",
    "tfms = [None, TSClassification()]\n",
    "batch_tfms = TSStandardize(by_sample=True)\n",
    "dls = get_ts_dls(X_feat, y, splits=splits, tfms=tfms, batch_tfms=batch_tfms)\n",
    "model = build_ts_model(MiniRocketHead, dls=dls)\n",
    "learn = Learner(dls, model, metrics=accuracy, cbs=ShowGraph())\n",
    "timer.start()\n",
    "learn.fit_one_cycle(10, 3e-4)\n",
    "timer.stop()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We'll now save the learner for inference: "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "PATH = Path('./models/MRL.pkl')\n",
    "PATH.parent.mkdir(parents=True, exist_ok=True)\n",
    "learn.export(PATH)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Inference:"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For inference we'll need to follow the same process as before: \n",
    "\n",
    "1. Create the features\n",
    "2. Create predictions for those features"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's recreate mrf (MiniRocketFeatures) to be able to create new features: "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<All keys matched successfully>"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mrf = MiniRocketFeatures(X.shape[1], X.shape[2]).to(default_device())\n",
    "PATH = Path(\"./models/MRF.pt\")\n",
    "mrf.load_state_dict(torch.load(PATH))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We'll create new features. In this case we'll use the valid set to confirm the predictions accuracy matches the one at the end of training, but you can use any data: "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((2466, 9996, 1), numpy.ndarray)"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "new_feat = get_minirocket_features(X[splits[1]], mrf, chunksize=1024, to_np=True)\n",
    "new_feat.shape, type(new_feat)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We'll now load the saved learner: "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "PATH = Path('./models/MRL.pkl')\n",
    "learn = load_learner(PATH, cpu=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "and pass the newly created features"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "array(['6', '6', '90', ..., '42', '90', '95'], dtype='<U2')"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "probas, _, preds = learn.get_X_preds(new_feat)\n",
    "preds"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6682887266828873"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "skm.accuracy_score(y[splits[1]], preds)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Ok, so the predictions match the ones at the end of training as this accuracy is the same on we got in the end."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Online feature calculation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "MiniRocket can also be used online, re-calculating the features each minibatch. In this scenario, you do not calculate fixed features one time. The online mode is a bit slower than the offline scanario, but offers more flexibility. Here are some potential uses:\n",
    "\n",
    "* You can experiment with different scaling techniques (no standardization, standardize by sample, normalize, etc).\n",
    "* You can use data augmentation is applied to the original time series.\n",
    "* Another use of online calculation is to experiment with training the kernels and biases.\n",
    "To do this requires modifications to the MRF code."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "SuggestedLRs(valley=5.248074739938602e-05)"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "tfms = [None, TSClassification()]\n",
    "batch_tfms = TSStandardize(by_sample=True)\n",
    "dls = get_ts_dls(X, y, splits=splits, tfms=tfms, batch_tfms=batch_tfms)\n",
    "model = build_ts_model(MiniRocket, dls=dls)\n",
    "learn = Learner(dls, model, metrics=accuracy, cbs=ShowGraph())\n",
    "learn.lr_find()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notice 2 important differences with the offline scenario: \n",
    "\n",
    "* in this case we pass X to the dataloader instead of X_tfm. The featurew will be calculated within the model.\n",
    "* we use MiniRocket instead of MiniRocketHead. MiniRocket is a Pytorch version that calculates features on the fly before passing them to a linear head."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "MiniRocket(\n",
       "  (backbone): MiniRocketFeatures()\n",
       "  (head): Sequential(\n",
       "    (0): Flatten(start_dim=1, end_dim=-1)\n",
       "    (1): BatchNorm1d(9996, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)\n",
       "    (2): Linear(in_features=9996, out_features=14, bias=True)\n",
       "  )\n",
       ")"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tfms = [None, TSClassification()]\n",
    "batch_tfms = TSStandardize(by_sample=True)\n",
    "dls = get_ts_dls(X, y, splits=splits, tfms=tfms, batch_tfms=batch_tfms)\n",
    "model = build_ts_model(MiniRocket, dls=dls)\n",
    "model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: left;\">\n",
       "      <th>epoch</th>\n",
       "      <th>train_loss</th>\n",
       "      <th>valid_loss</th>\n",
       "      <th>accuracy</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>2.157251</td>\n",
       "      <td>1.956957</td>\n",
       "      <td>0.464720</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>1.643532</td>\n",
       "      <td>1.236859</td>\n",
       "      <td>0.629765</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>1.308316</td>\n",
       "      <td>1.114902</td>\n",
       "      <td>0.651663</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>1.050885</td>\n",
       "      <td>1.102503</td>\n",
       "      <td>0.649635</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>0.856333</td>\n",
       "      <td>1.033938</td>\n",
       "      <td>0.668694</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>5</td>\n",
       "      <td>0.711603</td>\n",
       "      <td>0.984720</td>\n",
       "      <td>0.680860</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>6</td>\n",
       "      <td>0.595152</td>\n",
       "      <td>0.980984</td>\n",
       "      <td>0.682076</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>7</td>\n",
       "      <td>0.511481</td>\n",
       "      <td>0.977138</td>\n",
       "      <td>0.690187</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>8</td>\n",
       "      <td>0.459247</td>\n",
       "      <td>0.971216</td>\n",
       "      <td>0.685726</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>9</td>\n",
       "      <td>0.429359</td>\n",
       "      <td>0.974910</td>\n",
       "      <td>0.685726</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Total time        : 0:00:07.570489\n"
     ]
    }
   ],
   "source": [
    "tfms = [None, TSClassification()]\n",
    "batch_tfms = TSStandardize(by_sample=True)\n",
    "dls = get_ts_dls(X, y, splits=splits, tfms=tfms, batch_tfms=batch_tfms)\n",
    "model = build_ts_model(MiniRocket, dls=dls)\n",
    "learn = Learner(dls, model, metrics=accuracy, cbs=ShowGraph())\n",
    "timer.start()\n",
    "learn.fit_one_cycle(10, 3e-4)\n",
    "timer.stop()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Since we calculate the minirocket features within the model, we now have the option to use data augmentation for example: "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: left;\">\n",
       "      <th>epoch</th>\n",
       "      <th>train_loss</th>\n",
       "      <th>valid_loss</th>\n",
       "      <th>accuracy</th>\n",
       "      <th>time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <td>0</td>\n",
       "      <td>2.303133</td>\n",
       "      <td>2.205453</td>\n",
       "      <td>0.415247</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>1</td>\n",
       "      <td>1.887411</td>\n",
       "      <td>1.495654</td>\n",
       "      <td>0.563666</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>2</td>\n",
       "      <td>1.553027</td>\n",
       "      <td>1.252290</td>\n",
       "      <td>0.617194</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>3</td>\n",
       "      <td>1.303092</td>\n",
       "      <td>1.132298</td>\n",
       "      <td>0.650446</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>4</td>\n",
       "      <td>1.112951</td>\n",
       "      <td>1.147349</td>\n",
       "      <td>0.639903</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>5</td>\n",
       "      <td>0.979675</td>\n",
       "      <td>1.038660</td>\n",
       "      <td>0.673560</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>6</td>\n",
       "      <td>0.854913</td>\n",
       "      <td>1.069030</td>\n",
       "      <td>0.665045</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>7</td>\n",
       "      <td>0.751665</td>\n",
       "      <td>1.046229</td>\n",
       "      <td>0.675994</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>8</td>\n",
       "      <td>0.675961</td>\n",
       "      <td>1.042661</td>\n",
       "      <td>0.679238</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>9</td>\n",
       "      <td>0.628921</td>\n",
       "      <td>1.021231</td>\n",
       "      <td>0.679238</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>10</td>\n",
       "      <td>0.565799</td>\n",
       "      <td>1.024874</td>\n",
       "      <td>0.678021</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>11</td>\n",
       "      <td>0.511908</td>\n",
       "      <td>1.005434</td>\n",
       "      <td>0.690998</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>12</td>\n",
       "      <td>0.479471</td>\n",
       "      <td>1.009591</td>\n",
       "      <td>0.686537</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>13</td>\n",
       "      <td>0.449873</td>\n",
       "      <td>0.983806</td>\n",
       "      <td>0.696269</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>14</td>\n",
       "      <td>0.425199</td>\n",
       "      <td>0.994386</td>\n",
       "      <td>0.696269</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>15</td>\n",
       "      <td>0.405470</td>\n",
       "      <td>0.997589</td>\n",
       "      <td>0.688970</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>16</td>\n",
       "      <td>0.399379</td>\n",
       "      <td>0.991996</td>\n",
       "      <td>0.695053</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>17</td>\n",
       "      <td>0.371131</td>\n",
       "      <td>0.995865</td>\n",
       "      <td>0.686131</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>18</td>\n",
       "      <td>0.358109</td>\n",
       "      <td>0.991587</td>\n",
       "      <td>0.697080</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <td>19</td>\n",
       "      <td>0.349271</td>\n",
       "      <td>0.990997</td>\n",
       "      <td>0.693025</td>\n",
       "      <td>00:00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# MiniRocket with data augmentation\n",
    "tfms = [None, TSClassification()]\n",
    "batch_tfms = [TSStandardize(by_sample=True), TSMagScale(), TSWindowWarp()]\n",
    "dls = get_ts_dls(X, y, splits=splits, tfms=tfms, batch_tfms=batch_tfms)\n",
    "model = build_ts_model(MiniRocket, dls=dls)\n",
    "learn = Learner(dls, model, metrics=accuracy, cbs=[ShowGraph()])\n",
    "learn.fit_one_cycle(20, 3e-4)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this case, we can see that using MiniRocket (Pytorch implementation) with data augmentation achieves an accuracy of 69%+, compared to the sklearn-API implementation which is around 65%. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Once you have trained the model, you can always save if for future use. We just need to export the learner:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "PATH = Path('./models/MiniRocket_aug.pkl')\n",
    "PATH.parent.mkdir(parents=True, exist_ok=True)\n",
    "learn.export(PATH)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "del learn"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Inference"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's first recreate the learner: "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "PATH = Path('./models/MiniRocket_aug.pkl')\n",
    "learn = load_learner(PATH, cpu=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We are now ready to generate predictions. We'll confirm it worls well with the valid dataset: "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "array(['6', '62', '67', ..., '95', '90', '42'], dtype='<U2')"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "probas, _, preds = learn.get_X_preds(X[splits[1]])\n",
    "preds"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can see that the validation loss & metrics are the same we had when we saved it."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.6930251419302514"
      ]
     },
     "execution_count": null,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "skm.accuracy_score(y[splits[1]], preds)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Conclusion ✅"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "MiniRocket is a new type of algorithm that is significantly faster than any other method of comparable accuracy (including Rocket), and significantly more accurate than any other method of even roughly-similar computational expense. \n",
    "\n",
    "`tsai` supports the 2 variations of MiniRocket introduced in this notebook. A cpu version (that can be used with relatively small datasets, with <10k samples) and a gpu (Pytorch) version that can be used with datasets of any size. The Pytorch version can be used in an offline mode (pre-calculating all features before fitting the model) or in an online mode (calculating features on the fly). \n",
    "\n",
    "We believe MiniRocket is a great new tool, and encourange you to try it in your next Time Series Classification or Regression task. "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
